package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 阿里云对象存储服务
 */
@Configuration // 全局配置
@Slf4j
public class AliOssConfiguration {

    /**
     * 在项目启动的时候，注入阿里云对象存储服务（方便在项目中直接 @Autowired 注解使用）
     * @param properties 配置属性
     * @return 阿里云对象存储工具类
     */
    @Bean // 声明为 bean 对象
    @ConditionalOnMissingBean // 在没有 bean 的条件下才创建 bean
    public AliOssUtil aliOssUtil(/* 注入配置 */AliOssProperties properties) {
        return new AliOssUtil(properties.getEndpoint(), properties.getAccessKeyId(), properties.getAccessKeySecret(), properties.getBucketName());
    }
}
